Synchronisation using pilots and data

ABSTRACT

A method for estimating a time offset of a transmitted signal which comprises pilot symbols and data symbols, the method comprising: receiving the transmitted signal to produce a received signal; and processing an optimising function of the received signal at a finite number of possible time offsets to produce an estimator of the time offset.

PRIORITY DOCUMENT

The present application claims priority from:

Australian Provisional Patent Application No. 2013900552 titled “Synchronisation using pilots and data” and filed on 19 Feb. 2013.

The content of this application is hereby incorporated by reference in its entirety.

INCORPORATION BY REFERENCE

The following patent application is referred to in the following description:

PCT/AU2013/001464 entitled “Carrier phase and amplitude estimation for phase shift keying using pilots and data” filed on 13 Dec. 2013, claiming priority from Australian Provisional Patent Application No. 2012905489.

The content of this application is hereby incorporated by reference in its entirety.

TECHNICAL FIELD

The present invention relates to communication systems. In particular, the present invention relates to estimation of time offset of a received signal in a communication system.

BACKGROUND

In passband communication systems, a transmitted signal typically undergoes time offset (delay), phase shift, and attenuation (amplitude change). These effects must be compensated for at the receiver.

Estimation of time offset is critical for good receiver performance. The ability to improve the estimation accuracy for this time offset can be translated into a number of valuable benefits, including increased receiver sensitivity, increased power efficiency, a reduction in the amount of overhead required for pilot/training sequences.

A transmitted signal contains pilot symbols and data symbols. Signalling constellations that have symbols on the complex unit circle such as binary phase shift keying (BPSK), quaternary phase shift keying (QPSK) and M-ary phase shift keying (M-PSK) are often used, but more generally, quadrature amplitude modulated (QAM) constellations can also be used.

The problem of estimating time offset has undergone considerable prior research. Traditional approaches involve analogue phase-lock-loops and digital implementations motivated by phase-lock-loops. These approaches focus on estimating τ₀ modulo the symbol period T, that is, if τ₀=γ₀+i₀T where i₀εZ and γ₀ε[−T/2, T/2), then an estimator of γ₀ is given. This estimate may be used to drive a sampling device applied to the received signal (usually after matched filtering). Some other method must then be used to align the samples, i.e., to estimate A). The problem of estimating γ₀ is usually called symbol synchronisation, while the second problem of estimating i₀ is usually called frame synchronisation.

More recently iterative methods attempting to exploit the error correcting code used by the transmitter have appeared. These estimators typically apply the expectation maximisation (EM) algorithm under a Gaussian assumption regarding the noise w(t). A key problem is that the EM algorithm converges correctly only if initialised at some τ sufficiently close to τ₀. Methods for efficiently obtaining a τ close to τ₀ are still required.

SUMMARY

According to a first aspect of the present invention, there is provided a method for estimating a time offset of a transmitted signal which comprises pilot symbols and data symbols, the method comprising: receiving the transmitted signal to produce a received signal; and processing an optimising function of the received signal at a finite number of possible time offsets to produce an estimator of the time offset.

In one form, the optimising function comprises a function of the received signal with a finite number of possible pilots.

In one form, the optimising function comprises a function of the received signal with a finite number of possible data symbols.

In one form, the optimising function comprises a mathematical function, or equivalent, of SS(τ)=Z(τ)+Y(τ) where Z is a function of the received signal, the time offset and positions of a finite number of data symbols, and Y is a function of the received signal, the time offset and positions of a finite number of possible pilot symbols.

In one form, the optimising function is processed at the finite number of possible time offsets τ₁, τ₂, . . . , τ_(K) for some positive integer K where τ_(i+1)−τ_(l)=Δ, and Δ=T/c where T is the symbol period of the pilot symbols and data symbols, and c is a positive integer.

In one form, the data symbols are complex numbers.

In one form, the data symbols are from the complex unit circle.

In one form, the data symbols are from a M-PSK constellation.

In one form, the step of processing an optimising function comprises: computing b_(k) for all k=1+cmin(P∪D), . . . , K+cmax(P∪D), where P is set of indices describing positions of the pilots symbols, D is set of indices describing positions of the data symbols, K and c are positive integers; computing Z_(k)=Z(τ_(k)), based on b_(k), for all k=1, . . . , K, where τ_(k) an possible time offset; computing Y_(k)=Y(τ_(k)), based on b_(k), for all k=1, . . . , K, Y(τ_(k)) being a different function from Z(τ_(k)); computing kε{1, . . . , K} that maximises Z_(k)+Y_(k); computing an approximate time offset estimate, {tilde over (τ)}, based on k that maximises Z_(k)+Y_(k); and applying a numerical optimisation procedure initialized with {tilde over (τ)} to produce the estimator of the time offset.

In one form, the step of computing an approximate time offset estimate comprises: computing {tilde over (τ)}=τ₁+Δ({circumflex over (k)}−1)=τ_(min)+Δ({circumflex over (k)}−1), where {circumflex over (k)} is the k that maximises Z_(k)+Y_(k),Δ=T/c where T is the symbol period of the pilot symbols and data symbols, and c is a positive integer.

According to second aspect of the present invention, there is provided a computer program product configurable to perform the method of the first aspect, and/or its various forms.

According to third aspect of the present invention, there is provided a receiver configurable to perform the method of the first aspect, and/or its various forms.

According to fourth aspect of the present invention, there is provided a communication system, comprising: a transmitter for transmitting a transmitted signal which comprises pilot symbols and data symbols; and a receiver configurable to perform the method of the first aspect, and/or its various forms.

BRIEF DESCRIPTION OF DRAWINGS

A preferred embodiment of the present invention will be discussed with reference to the accompanying drawings wherein:

FIG. 1 depicts a block diagram illustrating one embodiment of the present invention;

FIG. 2 depicts one embodiment of the function SS(τ) of FIG. 1;

FIG. 3 summarises steps involved in performing the present invention;

FIG. 4 depicts steps which present the novel time offset estimation algorithm of one embodiment of the present invention;

FIG. 5 depicts Mean Square Error (MSE) versus Signal to Noise Ratio (SNR) with |P|=5 and root-raised cosine (RRC) pulse with roll-off ⅓;

FIG. 6 depicts Mean Square Error (MSE) versus Signal to Noise Ratio (SNR) with |P|=10 and root-raised cosine (RRC) pulse with roll-off ⅓;

FIG. 7 depicts Mean Square Error (MSE) versus Signal to Noise Ratio (SNR) with |P|=20 and root-raised cosine (RRC) pulse with roll-off ⅓;

FIG. 8 depicts Mean Square Error (MSE) versus Signal to Noise Ratio (SNR) with |P|=100 and root-raised cosine (RRC) pulse with roll-off ⅓;

FIG. 9 depicts Mean Square Error (MSE) versus Signal to Noise Ratio (SNR) with |P|=5 and root-raised cosine (RRC) pulse with roll-off 1/30;

FIG. 10 depicts Mean Square Error (MSE) versus Signal to Noise Ratio (SNR) with |P|=10 and root-raised cosine (RRC) pulse with roll-off 1/30;

FIG. 11 depicts Mean Square Error (MSE) versus Signal to Noise Ratio (SNR) with |P|=20 and root-raised cosine (RRC) pulse with roll-off 1/30; and

FIG. 12 depicts Mean Square Error (MSE) versus Signal to Noise Ratio (SNR) with |P|=100 and root-raised cosine (RRC) pulse with roll-off 1/30;

In the following description, like reference characters designate like or corresponding parts throughout the figures.

DESCRIPTION OF EMBODIMENTS A. Overview

The present invention relates to estimating the time offset of a transmitted signal, and the description of the present invention treats the phase shift and attenuation of a transmitted signal as nuisance parameters. However, the present invention can be readily applied to any system or receiver which also considers phase shift and attenuation of a transmitted signal together with the time offset.

A transmitted signal may take the (complex baseband) form

${{x(t)} = {\sum\limits_{i \in Z}{s_{i}{g\left( {t - {iT}} \right)}}}},$

where g(t) is the transmit pulse, T is the symbol period, s_(i)εC is the i th symbol, and C is the set of complex numbers. Some of the transmitted symbols are pilot symbols known to the receiver and the remainder are information carrying data symbols, with phase that is unknown to the receiver. So,

$s_{i} = \left\{ \begin{matrix} p_{i} & {{i \in P},} \\ d_{i} & {{i \in D},} \\ 0 & {{otherwise},} \end{matrix} \right.$

where P is the set of indices describing the position of the pilot symbols p_(i), and D is a set of indices describing the position of the data symbols d_(i). The sets P and D are disjoint, i.e. P∩D=Ø and the union P∪D contains all those indices where the transmitter is active. The total number of symbols transmitted L=|P|+|D|. The transmitted signal can be rewritten as:

x(t)=x _(p)(t)+x _(d)(t),

where

${x_{p}(t)} = {\sum\limits_{j \in P}{p_{i}{g\left( {t - {iT}} \right)}}}$ and ${x_{d}(t)} = {\sum\limits_{i \in D}{d_{i}{g\left( {t - {iT}} \right)}}}$

are the pilot and data portions of the transmitted signal.

It can be assumed that the received signal undergoes time and phase offset, is attenuated by some amount and is also subjected to additive noise. One possible model for the analogue received signal is,

$\begin{matrix} {{r(t)} = {{\alpha_{0}{x\left( {t - \tau_{0}} \right)}} + {w(t)}}} \\ {= {{\alpha_{0}{x_{p}\left( {t - \tau_{0}} \right)}} + {\alpha_{0}{x_{d}\left( {t - \tau_{0}} \right)}} + {w(t)}}} \end{matrix}$

where α₀εX is a complex number representing both attenuation and phase offset. τ₀ is the time offset and w(t) is a continuous noise process.

The problem of time offset estimation is made difficult by the fact that the receiver does not know the complex amplitude α₀ nor the data symbols.

In practice it is often necessary to also estimate the complex amplitude α₀. Given an accurate estimate of time offset (such as the novel estimate in accordance with one or more aspects of the present invention), one can use existing techniques known to a person skilled in the art to estimate α₀ after applying a matched filter.

The setting described herein involves a finite number of transmitted symbols, represented by the indices in P∪D. This has been known to a person skilled in the art as packet data transmission or burst-mode transmission. An alternative setting, continuous data transmission, assumes that P∪D=Z, but that the receiver only wishes to process the received signal r(t) inside some finite window of time. The novel estimator described herein can be used in either of these settings. However, for the sake of a clear exposition only packet data transmission is explained in the description below. Extension to other settings is straightforward for someone skilled in the art.

The estimator described herein also combines frame synchronisation and symbol synchronisation into a single operation that estimates the time offset.

FIG. 1 depicts a block diagram 1 illustrating one embodiment of the present invention. This is an overview only and detailed implementations will be presented later. An analogue received signal r(t), which is provided by a receiver (not shown), is sampled by switch 3 to become the digital signal r_(n). The digital signal r_(n) is then processed by processing block 5 using a function SS(τ) where τ takes the value of a finite number of possible time offsets. For example, the finite number of possible time offsets are τ₁, τ₂, . . . , τ_(K) for some positive integer K where τ_(i+1)−τ_(i)=Δ, and Δ=T/c where T is the symbol period of the pilot symbols and data symbols, and c is a positive integer. The function SS(τ) is often known as an optimising function, and it can be a minimiser or a maximiser. The optimising function of SS(T) over τ₁, τ₂, . . . τ_(K) produces an approximation {tilde over (τ)} of the true estimator {circumflex over (τ)}. To obtain {circumflex over (τ)} from {tilde over (τ)}, a further refinement process by processing block 7 is in place. However, it is possible that further refinement process by processing block 7 is not necessary depending on the requirement of the accuracy of the time offset. In other words, the approximation {tilde over (τ)} may be sufficiently accurate and a further refinement process by processing block 7 is not required.

FIG. 2 depicts a diagram 11 showing one embodiment of the function SS(τ) of FIG. 1, In this embodiment, the digital signal r_(n) is processed by functions Y(τ) 13 and Z(τ) 15. Function Y(τ) 13 is computed at τ₁, τ₂, . . . , τ_(K). For example, Y(τ) 13 can be a correlation of r_(n) and a finite number of possible pilot symbols. Z(τ) 15 is computed at τ₁, τ₂, . . . , τ_(k). For example, Z(τ) 15 can be a correlation of r_(n) and a finite number of possible data symbols. In one embodiment as shown, the output of function Y(τ) 13 is further processed by processing block 17 to produce a modulus of the output of function Y(τ). The modulus is then combined by combiner 19 with the output of function Z(τ) 15 to produce. In another embodiment, the output of function Y(τ) 13 can be combined with the output of function Z(τ) 15 to produce {tilde over (τ)}. In a general form, maximising a linear combination of Y(τ) 13 and Z(τ) 15 produces {tilde over (τ)}.

FIG. 3 summarises steps involved in performing the present invention. In particular, to estimate a time offset of a transmitted signal which comprises both pilot symbols and data symbols, the present invention includes step 31 of firstly receiving the transmitted signal to produce a received signal. This is then followed by step 33 of processing, an optimising function of the received signal at a finite number of possible time offsets to produce an estimator of the time offset.

A receiver which includes the functions described with respect to FIG. 1 can take various forms deemed suitable by a person skilled in the art. The receiver can also be part of a communication system, which also includes a corresponding transmitter. Further, the functions may be stored as instructions in a computer readable medium, such as a non-transitory processor readable medium (e.g. hard disk, Flash memory, optical disk (CDROM, DVD), etc.) for causing a processor to implement the functions.

Those of skill in the art would understand that information and signals may be represented using any of a variety of technologies and techniques. For example, data, instructions, commands, information, signals, bits, symbols, and chips may be referenced throughout the above description may be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any combination thereof.

Those of skill in the art would further appreciate that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this inter-changeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. A person skilled in the art may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention. For example, the invention herein described may be implemented in ground-satellite communication, mobile device communications etc. In fact, cost aside, the invention described herein can be applied to any form of communication equipment.

The steps of a method or algorithm described in connection with the embodiments disclosed herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. For a hardware implementation, processing may be implemented within one or more application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), processors, controllers, micro-controllers, microprocessors, other electronic units designed to perform the functions described herein, or a combination thereof. A central processing unit (CPU) may be used, containing an Input/Output Interface, an Arithmetic and Logic Unit (ALU) and a Control Unit and Program Counter element which is in communication with input and output devices or modules through the Input/Output Interface, and a memory. Software modules, also known as computer programs, computer codes, or instructions, may contain a number a number of source code or object code segments or instructions, and may reside in any computer or processor readable medium such as a RAM memory, flash memory, ROM memory, EPROM memory, registers, hard disk, a removable disk, a CD-ROM, a DVD-ROM or any other form of computer readable medium. In the alternative, the computer readable medium may be integral to the processor. The processor and the computer readable medium may reside in an ASIC or related device. The software codes may be stored in a memory unit and executed by a processor. The memory unit may be implemented within the processor or external to the processor, in which ease it can be communicatively coupled to the processor via various means as is known in the art.

The newly developed estimator of the time offset of a transmitted communications signal contains both pilot symbols, known to the receiver, and data symbols, unknown to the receiver. A number of different algorithms is derived for computing the estimator, that work under the assumption that the transmit pulse has finite duration. Faster algorithms are available if the symbol rate is rationally related to the sample rate, and even faster algorithms exist if the data symbols are arranged in a small number of contiguous blocks. Some of the algorithms require a number of operations that grows only linearly with the number of transmitted symbols. Monte Carlo simulations with the new estimator are also presented. The simulations show that the new estimator performs substantially better than the estimator that correlates the received signal with the pilot signal, ignoring the data symbols. The simulations also suggest that when the signal to noise ratio is sufficiently high, the new estimator performs similarly to the estimator that results when all of the transmitted symbols are known a priori at the receiver. The new estimator performs favourably when compared to the estimator that combines the symbol timing estimator of “Oerder-Meyr” (see M. Oerder and H. Meyr, “Digital Filter and square timing recovery” IEEE Trans. Commun., vol. 36, no. 5, pp. 605-612, May 1988) with the frame synchronisation algorithm of “Massey” (see J. L. Massey, “Optimum frame synchronization”, IEEE Trans. Commun., vol. 20, no. 2, pp. 115-119, 1972). This is particularly the case with bandwidth efficient transmit pulses, such as root raised cosines with small roll-off.

B. The Estimator

The received signal is sampled to obtain

$\begin{matrix} \begin{matrix} {r_{n} = {{r\left( {nT}_{s} \right)} = {w_{n} + {\alpha_{0}{x\left( {{T_{s}n} - \tau_{0}} \right)}}}}} \\ {{= {w_{n} + {\alpha_{0}{\sum\limits_{i \in Z}{{g\left( {{T_{s}n} - {Ti} - \tau_{0}} \right)}s_{i}}}}}},} \end{matrix} & (1) \end{matrix}$

where n is an integer and T_(s) is the sampling period and {w_(n), nεZ} is a sequence of noise variables. This model for the sampled signal assumes instantaneous sampling. This is a reasonable approximation for highly oversampled signals, i.e. when

$\frac{1}{T_{s}}$

is large compared to the bandwidth of g(t). If this instantaneous sampling assumption is not valid, but the sampling device can be reasonably modelled by a linear time-invariant system with impulse response g_(s)(t), then the effect of sampling can be included by replacing go with the convolution of g(t) and g_(s)(t), i.e., by replacing g(t) with

g _(s)(t)*g(t)=∫_(−∞) ^(∞) g(v)g _(s)(t−v)dv.

The objective function is defined as

SS(τ)=Y(τ)+Z(τ)

where

$\begin{matrix} {{Y(\tau)} = {f_{1}\left( {\sum\limits_{i \in P}{f_{2}\left( {p_{i}^{*}{\langle{{r(t)},{g\left( {t - {iT} - \tau} \right)}}\rangle}} \right)}} \right)}} & (2) \end{matrix}$

and

$\begin{matrix} {{Z(\tau)} = {g_{1}\left( {\sum\limits_{i \in D}{g_{2}\left( {\langle{{r(t)},{g\left( {t - {iT} - \tau} \right)}}\rangle} \right)}} \right)}} & (3) \end{matrix}$

where the inner product

${\langle{{r(t)},{g\left( {t - {iT} - \tau} \right)}}\rangle} = {\sum\limits_{n \in Z}{{r\left( {nT}_{s} \right)}{g^{*}\left( {{T_{s}n} - {Ti} - \tau} \right)}}}$

and * denotes complex conjugates and where f₁, f₂, g₁ and g₂ are functions that are free to be chosen. The algorithms described herein apply for any choice of f₁, f₂, g₁ and g₂, but to keep the notation clean and the discussion simpler, it is set

f ₁(x)=|x|,f ₂(x)=x,g ₁(x)=x,g ₂(x)=|x|  (4)

in what follows, where |x| denotes the complex magnitude. In this case

$\begin{matrix} {{Y(\tau)} = {{\sum\limits_{i \in P}{p_{i}^{*}{\langle{{r(t)},{g\left( {t - {iT} - \tau} \right)}}\rangle}}}}} & (5) \end{matrix}$

and

$\begin{matrix} {{Z(\tau)} = {\sum\limits_{i \in D}{{{\langle{{r(t)},{g\left( {t - {iT} - \tau} \right)}}\rangle}}.}}} & (6) \end{matrix}$

This choice is motivated by least squares statistical methodology, but it may be that other choices of f₁, f₂, g₁ and g₂ are good in certain situations. The present invention applies for all functions f₁, f₂, g₁ and g₂.

The estimator operates on the sampled signal directly. There is no need for resampling or interpolation as common in known call-digital receiver implementations. The process of ‘interpolation’ is built into the inner products in (7) to be described. What is assumed is that the transmit pulse, i.e. the function g: P

P, is known, and computable at the receiver. If it is computationally complex to compute g(t) for any given t then it may be advantageous to pre-compute g on a fine grid, and store the values in a lookup table, Simple interpolation (for example linear interpolation) can then be used based on the values in the table. This can be made as accurate as desired by appropriately choosing the size of the lookup table.

C. Computing the Estimator

In this section, practical algorithms for computing the minimiser of SS given the discrete received sequence {r_(n),nεZ} from (1) are described. To compute SS(τ) for a particular τ, it is necessary to compute both Y(τ) and Z(τ). Both Y and Z contain inner products of the form

$\begin{matrix} {{\langle{{r(t)},{g\left( {t - {iT} - \tau} \right)}}\rangle} = {\sum\limits_{n \in Z}{{r\left( {nT}_{s} \right)}g*\left( {{T_{s}n} - {Ti} - \tau} \right)}}} \\ {= {\sum\limits_{n \in Z}{r_{n}g*\left( {{T_{s}n} - {Ti} - \tau} \right)}}} \end{matrix}$

and these infinite sums cannot be computed in practice. To alleviate this, it is assumed that the transmit pulse g(t) has finite duration, that is g(t) is nonzero only for t in some interval [t_(min), t_(max)]. In this case the inner product can be computed by the finite sum

$\begin{matrix} {{{\langle{{r(t)},{g\left( {t - {iT} - \tau} \right)}}\rangle} = {\sum\limits_{n \in G}{r_{n}{g^{*}\left( {{T_{s}n} - {Ti} - \tau} \right)}}}},} & (7) \end{matrix}$

where

G={nεZ|T _(s) n−Ti−τε[t _(min) ,t _(max)]}.

This assumption is reasonable in practical systems that make use of truncated transmit pulses.

Another assumption made is that the time offset τ₀ is known to lie in some compact interval [τ_(min), τ_(max)] of P. This estimator is then the minimiser of SS(τ) over this interval,

$\hat{\tau} = {\arg \; {\max\limits_{\tau \in {\lbrack{\tau_{\min},\tau_{\max}}\rbrack}}{{S(\tau)}.}}}$

A result of these assumptions is that the receiver only requires those values of r_(n) within which the signal can reside. That is, only for n satisfying A≦n≦B where

${A = \left\lceil \frac{t_{\min} + \tau_{\min} + {T\; {\min \left( {P\bigcup D} \right)}}}{T_{s}} \right\rceil},{B = \left\lceil \frac{t_{\max} + \tau_{\max } + {T\; {\max \left( {P\bigcup D} \right)}}}{T_{s}} \right\rceil},$

and where min(P∪D) and max(P∪D) denote the minimum and maximum symbol indices, and ┌·┐ and └·┘ denote the smallest integer greater than or equal to, and the largest integer less than or equal to their arguments. In this way, the receiver only need observe a finite number of elements {r_(n), A≦n≦B}.

To compute {circumflex over (τ)}, SS is first computed on a finite uniform grid of values

τ₁,τ₂, . . . ,τ_(K)

for some positive integer K where τ_(i+1)−τ₁=Δ, and Δ=T/c is a fraction of the symbol period, and c is a positive integer. Then

${\tau_{1} = {{\tau_{\min}\mspace{14mu} {and}\mspace{14mu} \tau_{K}} = {\left\lfloor \frac{\tau_{\max}}{\Delta} \right\rfloor \Delta}}},$

so that the grid is spaced over the interval [τ_(min), τ_(max)] and

$K = {\left\lfloor \frac{\tau_{\max} - \tau_{\min}}{\Delta} \right\rfloor + 1.}$

Efficient algorithms for computing all of SS(τ₁), . . . , SS(τ_(K)) will be described. Provided that Δ is chosen sufficiently small (equivalently c is chosen sufficiently large) the grid point that minimises SS, denoted by {tilde over (τ)}, is a good approximation of the true minimiser {circumflex over (τ)}. An optimisation procedure, initialised at {tilde over (τ)}, can then be used to obtain {circumflex over (τ)}. Practical optimisation procedures are discussed in section G. For now, the focus is on computing the approximation {tilde over (τ)}.

To compute all of SS(τ₁), . . . , SS(τ_(K)) one needs to compute all of Y(τ₁), . . . , Y(τ_(K)) and all of Z(τ₁), . . . , Z(τ_(K)). A naïve approach is to directly compute Y(τ₁), . . . , Y(τ_(K)) and Z(τ₁), . . . , Z(τ_(K)) using formula (5) and (6) (or (2) and (3) for general f₁, f₂, g₁ and g₂).

The following sections describe a much faster algorithm for computing all of SS(τ₁), . . . , SS(τ_(K)). This algorithm requires that the sample period T_(s) is rationally related to the symbol period T, i.e.,

$T_{s} = {\frac{p}{q}T}$

T where p and q are relatively prime integers. This assumption can always be made an accurate approximation by an appropriate choice of p and q. The algorithm is described under the assumption that f₁, f₂, g₁ and g₂ are chosen according to (4), however it is trivial to modify the algorithms so that they work for any choice of the functions f₁, f₂, g₁ and g₂.

D1. Computing Z(τ₁), . . . , Z(τ_(K))

Write

$\Delta = {\frac{T}{c} = {{\frac{q}{pc}T_{s}} = {\frac{b}{a}T_{s}}}}$

where a and b are relatively prime positive integers such that

${\frac{q}{pc} = {{{\frac{b}{a}.\mspace{14mu} {For}}\mspace{14mu} } = 0}},\ldots \mspace{14mu},{b - 1},{let}$ ${g_{,n} = {{g^{*}\left( {{{- \left( {n - 1} \right)}\frac{b}{a}T_{s}} - \tau_{\min} + {\frac{b}{a}T_{s}}} \right)} = {g^{*}\left( {{{- \left( {n - 1} \right)}\Delta} - \tau_{1} + {\frac{}{a}T_{s}}} \right)}}},$

so that

$g_{,{k - n + {ic}}} = {{g^{*}\left( {{n\; \Delta} - {iT} - \tau_{k} + {\frac{}{a}T_{s}}} \right)}.}$

Let

$\begin{matrix} {z_{n} = \left\{ \begin{matrix} r_{n/a} & {{n/a} \in Z} \\ 0 & {otherwise} \end{matrix} \right.} & (8) \end{matrix}$

be a zero filled version of r_(n) and let

z _(l,n) =z _(bn+l).

Put 4=Z(τ_(k)) so that,

$\begin{matrix} \begin{matrix} {Z_{k} = {\sum\limits_{i \in D}{{\langle{{r(t)},{g\left( {t - {iT} - \tau_{k}} \right)}}\rangle}}}} \\ {= {\sum\limits_{i \in D}{{\sum\limits_{n \in Z}{r_{n}{g^{*}\left( {{nT}_{s} - {iT} - \tau_{k}} \right)}}}}}} \\ {= {\sum\limits_{i \in D}{{\sum\limits_{n \in Z}{z_{an}{g^{*}\left( {{nT}_{s} - {iT} - \tau_{k}} \right)}}}}}} \\ {{= {\sum\limits_{i \in D}{{\sum\limits_{n \in Z}{z_{n}{g^{*}\left( {{n\frac{1}{a}T_{s}} - {iT} - \tau_{k}} \right)}}}}}},} \end{matrix} & (9) \end{matrix}$

where the last line follows since z_(n)=0 whenever n is not a multiple of a. Now,

$\begin{matrix} \begin{matrix} {Z_{k} = {\sum\limits_{i \in D}{{\sum\limits_{n \in Z}{\sum\limits_{ = 0}^{b - 1}{z_{{bn} + }{g^{*}\left( {{n\frac{b}{a}T_{s}} + {\frac{}{a}T_{s}} - {iT} - \tau_{k}} \right)}}}}}}} \\ {= {\sum\limits_{i \in D}{{\sum\limits_{ = 0}^{b - 1}{\sum\limits_{n \in Z}{z_{,n}{g^{*}\left( {{n\; \Delta} - {iT} - \tau_{k} + {\frac{}{a}T_{s}}} \right)}}}}}}} \\ {= {\sum\limits_{i \in D}{{\sum\limits_{ = 0}^{b - 1}{\sum\limits_{n \in Z}{z_{,n}g_{,{k - n + {ci}}}}}}}}} \\ {= {\sum\limits_{i \in D}{{\sum\limits_{ = 0}^{b - 1}h_{,{k + {ci}}}}}}} \\ {{= {\sum\limits_{i \in D}{b_{k + {ci}}}}},} \end{matrix} & (10) \end{matrix}$

where

$\begin{matrix} {h_{,k} = {\sum\limits_{n \in Z}{z_{,n}g_{,{k - n}}}}} & (11) \end{matrix}$

is the convolution of the sequence {z_(l,n), nεZ} with the sequence {g_(l,n), nεZ} and

$\begin{matrix} {b_{k} = {\sum\limits_{ = 0}^{b - 1}{h_{,k}.}}} & (12) \end{matrix}$

A person skilled in the art familiar with multi-rate systems and filter banks will recognise (9) to (10) as similar to the derivation of a polyphase filter. The h_(l,k) corresponds with the individual filter banks. The computational complexity of our algorithms do depend on the fraction

$\frac{p}{q},$

but this structure ensures that the complexity will not depend on the magnitude of either p or g individually. This is desirable. It is not desirable for the algorithms to be fast when, say

${\frac{p}{q} = \frac{1}{4}},$

but slow when, say

$\frac{p}{q} = {\frac{1001}{4000}.}$

To compute all of Z₁, . . . , Z_(K) the values of b_(k) for k=1+cmin(D), . . . , K+cmax(D) are required, where max(D) and min(D) are the largest and smallest elements in D. To compute each b_(k) the value of h_(l,k) for l=0, . . . , q−1 is required. Methods for computing h_(l,k) are considered in subsections D3. The required values of b_(k) can be computed and stored so that accessing any b_(k) requires constant time.

In many practical scenarios it is the case that the data symbols occur in a small number of contiguous blocks, and in this case a faster algorithm exists. The algorithm for the case when the data symbols occur in a single contiguous block will be described, that is

D={min(D),min(D)+1, . . . ,max(D)}.

For each k=₀, . . . , c−1 one can compute Z_(k)=τ_(iεD)|b_(k+cl)| using O(|D|) operations and, because the data symbols are in a contiguous block,

$\begin{matrix} {Z_{k + c} = {\sum\limits_{i \in D}{{b_{k + c}\left( {i + 1} \right)}}}} \\ {= {Z_{k} - {b_{k + {c\; {\min {(D)}}}}} + {b_{k + {c\; {\max {(D)}}} + c}}}} \end{matrix}$

and so Z_(k), Z_(k+c), Z_(k+2c), . . . satisfy the recursion

Z _(k+(m+1)c) =Z _(k+mc) −|b _(k+mc+cmin(D)) |+|b _(k+mc+cmax(D)+c)|.

Each of Z₁, . . . , Z_(c−1) can be computed using (5) and the remaining elements Z_(c), . . . , Z_(K) can be computed using the recursion above. A similar approach applies when the data symbols occur in a small number of contiguous blocks. A similar recursive procedure (not described here) can be readily developed by a person skilled in the art if the data symbols occur in a small number of separate contiguous blocks.

D2. Computing Y(τ₁), . . . , Y(τ_(K))

Let b_(k) be defined as in (12) and put Y_(k)=Y(τ_(k)). By working analogous to that from (9) to (10),

$\begin{matrix} {Y_{k} = {\sum\limits_{i \in P}{p_{i}^{*}{\langle{{r(t)},{g\left( {t - {iT} - \tau_{k}} \right)}}\rangle}}}} \\ {= {\sum\limits_{i \in P}{p_{i}^{*}{\sum\limits_{n \in Z}{r_{n}{g^{*}\left( {{nT}_{s} - {iT} - \tau_{k}} \right)}}}}}} \\ {= {\sum\limits_{i \in P}{p_{i}^{*}b_{k + {ci}}}}} \end{matrix}$

To compute all of Y₁, . . . , Y_(K) we require b_(k) for k=1+cmin(P), . . . , K+cmax(P). As in the previous subsection, the required values of b_(k) can be computed and stored so that accessing them requires constant time

D3. Computing b_(k) and h_(l,k)

During the previous subsections it is assumed that certain values of b_(k) had already been computed, and this subsection describes how to perform these computations efficiently. To compute b_(k) it is necessary to compute:

${h_{,k} = {\sum\limits_{n \in Z}{z_{,n}g_{,{k - n}}}}},{{for}\mspace{14mu} {all}}$  = 0, …  , b − 1

Since g(t) is nonzero only when tε[t_(min), t_(max)] then g_(l,n) is nonzero only if

${{{{- \left( {n - 1} \right)}\Delta} - \tau_{1} + {\frac{}{n}T_{s}}} \in \left\lbrack {t_{m\; i\; n},t_{{ma}\; x}} \right\rbrack},$

that is, only if A≦n≦B where

$A^{\prime} = {1 - \frac{t_{\max} + \tau_{1}}{\Delta} + \frac{}{b}}$ and $B^{\prime} = {1 - \frac{t_{\min} + \tau_{1}}{\Delta} + \frac{}{b}}$ and ${\frac{}{a\; \Delta}T_{s}} = {\frac{}{b}.}$

Now h_(l,k) can be expressed as the finite sum

$h_{,k} = {\sum\limits_{n \in G^{\prime}}{z_{,n}g_{,{k - n}}}}$

where G={n|A≦k−n≦B}. Since z_(l,n)=z_(bn+l) nonzero only for those integers n satisfying bn+l≡0(mod a), the sum above can be further simplified to

$\begin{matrix} {{h_{,k} = {\sum\limits_{n \in G^{''}}{Z_{,n}g_{,{k - n}}}}},} & (13) \end{matrix}$

where G″={nεG′|bn+l≡0(mod a)}. Since a and b are relatively prime, there exist integers n₀ and m₀ such that bn₀+am₀=1. Both n₀ and m₀ can be computed using the extended Euclidean algorithm. Now lbn₀≡l(mod a) and

G″={ma−ln₀ |m=B″,B″+1, . . . ,A″}

where

${B^{''} = \left\lceil \frac{k - B^{\prime} + {\; n_{0}}}{a} \right\rceil},{A^{''} = {\left\lfloor \frac{k - A^{\prime} + {\; n_{0}}}{a} \right\rfloor.}}$

E. Summary of the Algorithm

FIG. 4 depicts the following steps which present the novel time offset estimation algorithm of one embodiment of the present invention. The maximisation in Step 4 is straightforward, and the optimisation in Step 6 can use any one of a number of numerical optimisation procedures that are known to someone skilled in the art. One particular example is given in Section F.

STEP 1: Compute and store the value of k for all

k=1+cmin(P∪D), . . . ,K+cmax(P∪D).

Each k can be efficiently computed using (12) and the algorithm described in subsection D3.

STEP 2: Compute and store Z_(A), =Z(τ_(k)) for all k=1, . . . , K using either the direct or recursive procedures described in subsection D1.

STEP 3: Compute and store Y_(k)=Y(τ_(k)) for all k=1, . . . , K using the procedures described in subsection D2.

STEP 4: Find the kε{1, . . . , K} that maximises Z_(k)+Y_(k), that is, compute

$\hat{k} = {\arg \; {\max\limits_{{k = 1},\ldots \mspace{14mu},K}{\left( {Z_{k} + Y_{k}} \right).}}}$

STEP 5: Compute the approximate estimate

{tilde over (τ)}=τ₁+Δ({tilde over (k)}−1)=τ_(min)+Δ({circumflex over (k)}−1).

STEP 6: Apply a numerical optimisation procedure to SS(τ) initialized with {tilde over (τ)} to find the minimiser {tilde over (τ)}. Section G describes an implementation of Brent's method for this purpose (see R. P. Brent, Algorithms for Minimization without Derivatives, Prentice-Hall, Englewood Cliffs, N.J., 1973).

F. Obtaining {circumflex over (τ)} from {tilde over (τ)}

In the previous section methods for computing {tilde over (τ)}, the minimiser of SS over the grid τ₁, . . . , τ_(K) are described. This serves as an approximation of {circumflex over (τ)}, the true minimiser of SS. Methods for obtaining {circumflex over (τ)} from {tilde over (τ)} are no discussed. Many approaches could be taken. For example, the Newton-Raphson method, or gradient ascent could be employed with {tilde over (τ)} as a starting point. In one embodiment, Brent's method is used. This has the advantage of not requiring the derivatives of SS(τ). Brent's method requires three initialisation points, x, y and z, such that {circumflex over (τ)}ε[x, z] and SS(y)<SS(z) and SS(y)<SS(x). {tilde over (τ)} and it's adjacent grid points are used for initialisation, that is, x={tilde over (τ)}−Δ, y={tilde over (τ)} and z={tilde over (τ)}+Δ.

G. Numerical Results

Results of Monte Carlo simulations with our new estimator (the minimiser of SS) are presented, with the estimator assuming all symbols are known (|D|=0 and |P|=L, L being the total number of symbols), and the estimator that only uses the pilot symbols (|D|=0). Simulations with the estimator that combines the Oerder-Meyr ‘square and filter symbol’ timing estimator (see M. Oerder and H. Meyr, “Digital Filter and square timing recovery”, IEEE Trans Commun, vol. 36, no. 5, pp. 605-612, May 1988) with the ‘high SNR’ frame synchronisation algorithm of Massey are also presented. For the simulations the noise {w_(n)} is complex Gaussian with zero mean and independent real and imaginary parts having variance σ². In this setting the estimator that assumes all symbols are known is the maximum likelihood estimator. The signal to noise ratio (SNR) is defined as

${SNR} = \frac{E_{s}}{2\sigma^{2}}$

where E_(s)=T_(s)/T is the average energy per sample. In this case, it is selected that p=3 and q=17 so the sample period is

$T_{s} = {\frac{3}{17}.}$

The time offset search interval is [τ_(min), τ_(max)]=[40,70], and c=12, so that

$\Delta = {\frac{T}{c} = {\frac{1}{12}.}}$

This corresponds to the grid

$40,{40 + \frac{1}{12}},{40 + \frac{2}{12}},\ldots \mspace{14mu},{70 - \frac{1}{12}},70$

that is searched in order to provide the approximate estimate {tilde over (τ)}. Brent's method is used to refine {tilde over (τ)} to within 10⁻⁷ of {circumflex over (τ)}. Monte Carlo simulations are run for SNR between −17 dB to 23 dB in steps of 1.5 dB. The number of replications used per experiment is N=2000. N estimates {circumflex over (τ)}1, . . . , {circumflex over (τ)}_(N) is obtained, and the mean square error (MSE) is computed according to

$\frac{1}{N}{\sum\limits_{n = 1}^{N}{\left( {{\hat{\tau}}_{n} - \tau_{0}} \right)^{2}.}}$

For each replication the pilot symbols and data symbols are uniformly randomly generated QPSK symbols, the complex amplitude α₀ has magnitude one and phase uniformly randomly generated on [0,2π), and the time offset τ₀ is uniformly randomly generated on the interval [τ_(min)+1, τ_(max)−1]=[41,69]

Simulations for L=40 and L=400 are performed. FIGS. 5 to 8 display the results with the number of pilots symbols |P|=5,10,20 when L=40 and |P|=5,10,20,100 when L=400 and when the transmit pulse is a root-raised cosine (RRC) with roll-off ⅓ and period T=1. The pulse is truncated at the 15th zero on the positive and negative real axis. These zeros occur at t=±t₀≈11.635639 so the pulse is set to zero outside the interval [−t₀, t₀]. This truncated pulse is then normalised to have energy 1. In all cases the pilot symbols are arranged in a contiguous block with indices P={1, . . . , |P|} and the data symbols are arranged in a contiguous block with indices D={|P|+1, . . . , |D|}. As expected, the estimator using only the pilot signal works better when there are more pilot symbols. This estimator performs poorly compared to the other estimators when the number of pilots is small. The performance of our new estimator is poor until the SNR is sufficiently large, a threshold effect is then observed, after which, the performance is not far from the estimator that results when all of the symbols are known in advance. The value of SNR where the threshold occurs appears to depend largely on the number of pilots, and little on the total number of symbols L.

FIGS. 9 to 12 display result under the same conditions as in FIGS. 5 to 8 but where the transmit pulse is now a root-raised cosine with roll-off 1/30 and period T=1. The pulse is now truncated at the 30th zero on the positive and negative real axis. These zeros occur at t=±t₀≈29.59077 and the pulse is set to zero outside the interval [−t₀, t₀]. This truncated pulse is then normalised to have energy 1. In this setting the MSE of the estimator based on the Oerder-Meyr symbol timing estimator and Massey's frame synchroniser is larger than that when the roll-off was ⅓. This is due to the Oerder-Meyr synchroniser being less accurate when the roll-off is small. The behaviour is studied in M. Oerder and H. Meyr, “Digital Filter and square timing recovery”, IEEE Trans. Commun., vol. 36, no. 5, pp. 605-612, May 1988, where it is shown that the variance of the Oerder-Meyr synchroniser is inversely proportional to the energy of the signal |g(t)|² at frequency

$\frac{1}{T}.$

That is if

P(f)=∫_(−∞) ^(∞) |g(t)|² e ^(−j2πt) dt

is the Fourier transform of |g(t)²|, then the variance is inversely proportional to |P(1/T)|². The value of |P(1/T)|² can be observed to decrease with the roll-off, making the Oerder-Meyr synchroniser less accurate. By contrast, the new estimator described herein appears to be minimally affected by the change in roll-off.

Throughout the specification and the claims that follow, unless the context requires otherwise, the words “comprise” and “include” and variations such as “comprising” and “including” will be understood to imply the inclusion of a stated integer or group of integers, but not the exclusion of any other integer or group of integers.

The reference to any prior art in this specification is not, and should not be taken as, an acknowledgement of any form of suggestion that such prior art forms part of the common general knowledge.

It will be appreciated by those skilled in the art that the invention is not restricted in its use to the particular application described. Neither is the present invention restricted in its preferred embodiment with regard to the particular elements and/or features described or depicted herein. It will be appreciated that the invention is not limited to the embodiment or embodiments disclosed, but is capable of numerous rearrangements, modifications and substitutions without departing from the scope of the invention. 

1. A method for estimating a time offset in a received signal by a receiver, the method comprising: receiving a signal comprising pilot symbols and data symbols; and processing an optimising function of the received signal at a finite number of possible time offsets to produce an estimator of the time offset.
 2. The method of claim 1, wherein the optimising function comprises a function of the received signal with a finite number of possible pilots.
 3. The method of claim 1, wherein the optimising function comprises a function of the received signal with a finite number of possible data symbols.
 4. The method of claim 1, wherein the optimising function comprises a mathematical function, or equivalent, of SS(τ)=Z(τ)+Y(τ) where Z is a function of the received signal, the time offset and positions of a finite number of the data symbols, and Y is a function of the received signal, the time offset and positions of a finite number of possible pilot symbols.
 5. The method of claim 1, wherein the optimising function is processed at the finite number of possible time offsets τ₁, τ₂, . . . , τ_(K) for some positive integer K where τ_(i+1)−τ_(i)=Δ, and Δ=T/c where T is the symbol period of the pilot symbols and data symbols, and c is a positive integer.
 6. The method of claim 1, wherein the data symbols are complex numbers.
 7. The method of claim 1, wherein the data symbols are from a finite set on a complex unit circle.
 8. The method of claim 7, wherein the data symbols are from M-PSK constellations.
 9. The method of claim 1, wherein the step of processing an optimising function comprises: Computing b_(k) for all k=1+c min(P∪D), . . . , K+c max(P∪D), where P is set of indices describing positions of the pilots symbols, D is set of indices describing positions of the data symbols, K and c are positive integers; computing Z_(k)=Z(τ_(k)), based on b_(k), for all k=1, . . . , K, where τ_(k) is an possible time offset; computing Y_(k)=Y(τ_(k)), based on b_(k), for all k=1, . . . , K, Y(τ_(k)) being a different function from Z(τ_(k)); computing kε{1, . . . , K} that maximises Z_(k)+Y_(k); computing an approximate time offset estimate, {tilde over (τ)}, based on k that maximises Z_(k)+Y_(k); and applying a numerical optimisation procedure initialized with {tilde over (τ)} to produce the estimator of the time offset.
 10. The method of claim 9, wherein the step of computing an approximate time offset estimate comprises: computing {tilde over (τ)}=τ₁+Δ({circumflex over (k)}−1)=τ_(min)+Δ({circumflex over (k)}−1), where {circumflex over (k)} is the k that maximises Z_(k)+Y_(k), Δ=T/c where T is the symbol period of the pilot symbols and data symbols, and c is a positive integer.
 11. A non-transitory processor readable medium, comprising instructions for causing a processor to carry out a method for estimating a time offset in a received signal by a receiver comprising: receiving a signal comprising pilot symbols and data symbols; and processing an optimising function of the received signal at a finite number of possible time offsets to produce an estimator of the time offset.
 12. A receiver comprising: a receiving module for receiving a signal comprising pilot symbols and data symbols; and a processing module comprising a memory and a processor operatively coupled to the memory and configured to carry out a method for estimating a time offset in the received signal received by the receiving module, the method comprising: processing an optimising function of the received signal at a finite number of possible time offsets to produce an estimator of the time offset.
 13. (canceled) 